import pandas as pd

# 读取Excel文件
df = pd.read_excel('source.xlsx', engine='openpyxl')

# 定义一个函数来判断是否为闰年
def is_leap_year(year):
    return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)

# 定义一个函数来计算月份的天数
def days_in_month(year, month):
    if month in [4, 6, 9, 11]:
        return 30
    elif month == 2:
        return 29 if is_leap_year(year) else 28
    else:
        return 31

# 计算开始日期
df['开始日期'] = df.apply(lambda row: pd.to_datetime(row['年份'].astype(str) + '-' + row['月份'].astype(str) + '-01', format='%Y-%m-%d'), axis=1)

# 计算结束日期
df['结束日期'] = df.apply(lambda row: pd.to_datetime(row['年份'].astype(str) + '-' + row['月份'].astype(str) + '-' + str(days_in_month(int(row['年份']), int(row['月份'])))), axis=1)

# 将结果输出到新的Excel文件
df.to_excel('source_with_dates.xlsx', index=False, engine='openpyxl')